package com.fowo.api.model.tmp.wfs.cargo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * WFS货件临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpWfsCargoImportPo {

  /** 入库订单编号 */
  @ExcelProperty("入库订单编号")
  @Size(max = 50, message = "入库订单编号长度不能超过50")
  private String inboundOrderId;

  /** 货件单号 */
  @ExcelProperty("货件单号")
  @Size(max = 50, message = "货件单号长度不能超过50")
  private String shipmentId;

  /** 货件状态 */
  @ExcelProperty("货件状态")
  @Size(max = 50, message = "货件状态长度不能超过50")
  private String status;

  /** 创建时间 */
  @ExcelProperty("创建时间")
  @DateTimeString(message = "创建时间不是有效的时间日期格式")
  private String createdDate;

  /** 申报数量 */
  @ExcelProperty("申报数量")
  @IntegerString(
    message = "申报数量数值格式不正确",
    label = "申报数量",
    min = 0
  )
  private String shipmentUnits;

  /** 签收数量 */
  @ExcelProperty("签收数量")
  @IntegerString(
    message = "签收数量数值格式不正确",
    label = "签收数量",
    min = 0
  )
  private String receivedUnits;

  /** 预计交货日期 */
  @ExcelProperty("预计交货日期")
  @DateTimeString(message = "预计交货日期不是有效的时间日期格式")
  private String expectedDeliveryDate;

  /** 更新预期交付日期 */
  @ExcelProperty("更新预期交付日期")
  @DateTimeString(message = "更新预期交付日期不是有效的时间日期格式")
  private String updatedExpectedDeliveryDate;

  /** 交货日期 */
  @ExcelProperty("交货日期")
  @DateTimeString(message = "交货日期不是有效的时间日期格式")
  private String actualDeliveryDate;

  /** 货物的跟踪信息 */
  @ExcelProperty("货物的跟踪信息")
  @Size(max = 5000, message = "货物的跟踪信息长度不能超过5000")
  private String trackingNo;

  /** 货物承运人 */
  @ExcelProperty("货物承运人")
  @Size(max = 50, message = "货物承运人长度不能超过50")
  private String carrierName;

  /** 配送地址收件人 */
  @ExcelProperty("配送地址收件人")
  @Size(max = 50, message = "配送地址收件人长度不能超过50")
  private String toFcName;

  /** 配送地址详细地址1 */
  @ExcelProperty("配送地址详细地址1")
  @Size(max = 500, message = "配送地址详细地址1长度不能超过500")
  private String toAddressLine1;

  /** 配送地址详细地址2 */
  @ExcelProperty("配送地址详细地址2")
  @Size(max = 500, message = "配送地址详细地址2长度不能超过500")
  private String toAddressLine2;

  /** 配送地址城市 */
  @ExcelProperty("配送地址城市")
  @Size(max = 50, message = "配送地址城市长度不能超过50")
  private String toCity;

  /** 配送地址州 */
  @ExcelProperty("配送地址州")
  @Size(max = 50, message = "配送地址州长度不能超过50")
  private String toStateCode;

  /** 配送地址国家 */
  @ExcelProperty("配送地址国家")
  @Size(max = 50, message = "配送地址国家长度不能超过50")
  private String toCountryCode;

  /** 配送地址邮编 */
  @ExcelProperty("配送地址邮编")
  @Size(max = 50, message = "配送地址邮编长度不能超过50")
  private String toPostalCode;

  /** 退货地址详细地址1 */
  @ExcelProperty("退货地址详细地址1")
  @Size(max = 500, message = "退货地址详细地址1长度不能超过500")
  private String returnAddressLine1;

  /** 退货地址详细地址2 */
  @ExcelProperty("退货地址详细地址2")
  @Size(max = 500, message = "退货地址详细地址2长度不能超过500")
  private String returnAddressLine2;

  /** 退货地址城市 */
  @ExcelProperty("退货地址城市")
  @Size(max = 50, message = "退货地址城市长度不能超过50")
  private String returnCity;

  /** 退货地址州 */
  @ExcelProperty("退货地址州")
  @Size(max = 50, message = "退货地址州长度不能超过50")
  private String returnStateCode;

  /** 退货地址国家 */
  @ExcelProperty("退货地址国家")
  @Size(max = 50, message = "退货地址国家长度不能超过50")
  private String returnCountryCode;

  /** 退货地址邮编 */
  @ExcelProperty("退货地址邮编")
  @Size(max = 50, message = "退货地址邮编长度不能超过50")
  private String returnPostalCode;

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺", min = 0L)
  private String sid;

  /** 国家 */
  @ExcelProperty("国家")
  @LongString(message = "国家数值格式不正确", label = "国家", min = 0L)
  private String countryName;

  /** 是否更新数据 */
  @ExcelProperty("是否更新数据")
  @BooleanString(message = "是否更新数据格式不正确，请使用“是”，“否”")
  private String isUpdate;
}
